package top.eggcode.plugins.session.store;

import top.eggcode.plugins.session.Session;

import java.io.Serializable;
import java.util.Collection;

/**
 * Title: session 容器
 * Description: TODO
 * Date: 2021/6/12 9:09
 *
 * @author JiaQi Ding
 * @version 1.0
 */
public interface SessionStore {

    /**
     * 创建会话，分配id
     *
     * @param session 会话
     * @return 会话id
     */
    Serializable create(Session session);

    /**
     * 读取session
     *
     * @param key 会话id
     * @return session
     */
    Session readSession(Serializable key);

    /**
     * 更新session
     *
     * @param session 会话
     */
    void update(Session session);

    /**
     * 删除会话
     *
     * @param session 会话
     */
    void delete(Session session);

    /**
     * 获取有效的session集合
     *
     * @return 会话集合
     */
    Collection<Session> getActiveSessions();
}
